<?php

/*
 * 先打开浏览器输入：http://127.0.0.1:9501/?key=sleep  (我们期望输出sleep)
 * 再输入：http://127.0.0.1:9501/?key=abcd
 * 最终第一个输出的是abcd, 这是因为，在第一个请求处理过程中，第二个请求的时候，已以把Test::$key改变了，当第一个请求处理完，读到的数据已经变了
 * 所以全局变量在swoole协程下应该非常谨慎的使用
 * */

class Test
{
    static $key = [];
}

$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->set([//"daemonize" => true,
            "worker_num" => 1,]);
$http->on('request', function($request, $response) {
    if ($request->server['path_info'] == '/favicon.ico') {
        $response->end('');
        return;
    }
    $key       = $request->get['key'];
    Test::$key = $key;
    if ($key == 'sleep') {
        //模拟耗时操作
        Co::sleep(10);
    }
    $response->end(Test::$key);
});
$http->start();